<template>
  <div class='recognition' v-loading="loading" element-loading-text="玩命识别中...">
    <!-- 图片上传 -->
    <div style="text-align:center">
     
      <el-upload
      class="upload-demo"
      drag
      action="http://39.101.198.99:8888/Animal/animal"
      accept=".jpg, .jpeg, .png"
      :on-error="handleUploadError"
      :before-upload="handleBeforeUpload"
      :show-file-list="true"
      :on-success="handleUploadSuccess"
      list-type="picture">
      <i class="el-icon-upload"></i>
      <div class="el-upload__text">将文件拖到此处，或<em>点击上传</em></div>
      <div class="el-upload__tip" slot="tip" style="font-size:18px">只能上传jpg/png/jpeg文件，且不超过  <span style="color:red;font-size:20px"><b>1Mb</b></span>
</div>
      </el-upload>
    </div>
    <br>
    <!-- 结果显示 -->
    <el-table :data="response.result">
      <el-table-column label="序号" type="index" :index="1" width="50px" align="center"></el-table-column>
      <el-table-column label="可信度" prop="score" align="center" width="100px">
        <template slot-scope="scope">
            {{ scope.row.score | rounding}}
        </template>
      </el-table-column>
      <el-table-column label="种类" prop="name" align="center" width="100px"></el-table-column>
      <el-table-column label="百度百科页面链接" prop="baike_info.baike_url" align="center" width="150px">
         <template slot-scope="scope">
          <a :href="scope.row.baike_info.baike_url" target="_blank" class="buttonText">{{scope.row.baike_info.baike_url}}</a>
        </template>
      </el-table-column>
      <el-table-column label="百科图片链接" prop='baike_info.image_url' align="center" width="300px">
       <template slot-scope="scope">
          <a :href='scope.row.baike_info.image_url' target="_blank" class="buttonText"  referrerpolicy="no-referrer">
            <div>
                <el-image
                :src='scope.row.baike_info.image_url' 
                alt="无法载入"  
                referrerpolicy="no-referrer" 
                width="250px">
                </el-image>
            </div>
          </a>
        </template>
      </el-table-column>
      <el-table-column label="百科内容描述" prop="baike_info.description" align="center" width="auto"></el-table-column>
    </el-table>
  </div>
</template>

<script>
import { get } from '@/utils/request'

export default {
  // 组件名称
  name: 'demo',
  // 组件参数 接收来自父组件的数据
  props: {},
  // 组件状态值
  data () {
   return {
     loading:false,
     response:{},
   }
  },
  // 计算属性
  computed: {},
  // 侦听器
  watch: {},
  // 组件方法
  methods: {
    
    handleBeforeUpload(){
      // 开始loading...
      this.loading = true;
    },
    
    handleUploadError(){
      this.loading = false;
    },
    handleUploadSuccess(resp){
      this.response = resp;
      this.loading = false;
    },

 
  },
  filters: {
    rounding (value) {
      if(value || value === 0) { //这个判断是为了防止数据为空，页面渲染为NAN
        return Number(value*100).toFixed(2)+'%';
      }
    }
  },
  // 以下是生命周期钩子
  /**
  * 组件实例创建完成，属性已绑定，但DOM还未生成，$ el属性还不存在
  */
  created () {
  },
  /**
  * el 被新创建的 vm.$ el 替换，并挂载到实例上去之后调用该钩子。
  * 如果 root 实例挂载了一个文档内元素，当 mounted 被调用时 vm.$ el 也在文档内。
  */
  mounted () {
  },
  /**
  * 实例销毁之前调用。在这一步，实例仍然完全可用。
  */
  beforeDestroy () {
  },
  /**
  * Vue 实例销毁后调用。调用后，Vue 实例指示的所有东西都会解绑定，
  * 所有的事件监听器会被移除，所有的子实例也会被销毁。
  */
  destroyed () {
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<!--使用了scoped属性之后，父组件的style样式将不会渗透到子组件中，-->
<!--然而子组件的根节点元素会同时被设置了scoped的父css样式和设置了scoped的子css样式影响，-->
<!--这么设计的目的是父组件可以对子组件根元素进行布局。-->
<style scoped>

</style>
